#include <iostream>
#include <map>  //红黑树
#include <vector>
int main()
{   
    // 对组 键值对
    // std::pair<int,std::string>p(1,"zhangsan");
    // std::pair<int,std::string>p = std::make_pair(1,"zhangsan");
    // std::cout<<p.first<<" "<<p.second<<std::endl;


    //排序键值对组 按键排序
    // std::map<int,std::string> m;
    // m.insert(std::pair<int,std::string>(1,"zhangsan"));
    // m.insert(std::make_pair(2,"lisi"));
    // m.insert({3,"wangwu"});
    // m.insert({2,"test"}); //键值唯一
    // m[2] = "test"; //键存在,修改值
    // m[4] = "wangwu"; //键不存在 就插入值
    // for(auto ite = m.begin(); ite!= m.end();ite++)
    // {
    //     std::cout<<ite->first<<" "<<ite->second<<std::endl;
    // }
    // std::cout<<m[2]<<std::endl;//重载[]

    // auto ite = m.find(2);
    // if(ite == m.end())
    // {
    //     std::cout<<"没找到!\n";
    // }
    // else
    // {
    //     std::cout<<ite->first<<" "<<ite->second<<std::endl;
    // }


    int a[] = {2,3,1,4,65,2,3,2,4};
    std::map<int,int> m;
    for(int i = 0;i < sizeof(a)/sizeof(a[0]);i++)
    {
        m[a[i]]++;
    }

    auto MaxIte = m.begin();
    for(auto ite = m.begin();ite != m.end();ite++)
    {
        if(ite->second > MaxIte->second)
        {
            MaxIte = ite;
        }
    }
    std::cout<<"出现次数最多的数是"<<MaxIte->first<<"，出现了"<<MaxIte->second<<std::endl;
    return 0;
}